home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / Audio / LPCView / Source / Dispatcher.m < prev    next >
Encoding:
Text File  |  1994-05-19  |  6.0 KB  |  310 lines

  1.  
  2. /* Generated by Interface Builder */
  3.  
  4. #import "Dispatcher.h"
  5. #import "LPCPlot.h"
  6. #import "LPCreate.h"
  7. #import "PCHPlot.h"
  8. #import "LPCView.h"
  9. #import "Help.h"
  10. #import <appkit/OpenPanel.h>
  11. #import <appkit/SavePanel.h>
  12. #import <appkit/Application.h>
  13. #import <strings.h>
  14. #import <stdio.h>
  15. #import <libc.h>
  16. #import <defaults.h>
  17. #import <appkit/Control.h>
  18. #import <appkit/Window.h>
  19. #import <defaults/defaults.h>
  20.  
  21. @implementation Dispatcher
  22. + new
  23. {
  24.     self = [super new];
  25.     return self;
  26. }
  27.  
  28. - init
  29. {
  30.     char *suffix;
  31.     
  32.     strcpy(appDir, NXArgv[0]);
  33.     if (suffix = rindex(appDir,'/')) 
  34.         *suffix  = '\0';     /* remove executable name */
  35.     if (appDir) 
  36.         chdir(appDir); 
  37.     getwd(appDir);
  38.     selection = NULL;
  39.     [prefPanel setDelegate:self];
  40.     [self setPrefs];
  41.     return self;
  42. }
  43.  
  44. - (const char *)appDirectory;
  45. /* Returns the path to the app wrapper (for Help object).
  46.  */
  47. {
  48.     return appDir;
  49. }
  50.  
  51. - setPrefs
  52. {
  53.     const char *owner;
  54.     char *temp;
  55.     
  56.     owner = "lpcview";
  57.     temp = (char *)NXReadDefault(owner, "lpc");
  58.     if (temp)
  59.         [deflpc setStringValue:(char *)NXReadDefault(owner, "lpc")];
  60.     
  61.     temp = (char *)NXReadDefault(owner, "stabilize");
  62.     if (temp)
  63.         [defstabilize setStringValue:(char *)NXReadDefault(owner, "stabilize")];
  64.     
  65.     temp = (char *)NXReadDefault(owner, "ptrack");
  66.     if (temp)
  67.         [defptrack setStringValue:(char *)NXReadDefault(owner, "ptrack")];
  68.     
  69.     temp = (char *)NXReadDefault(owner, "merge");
  70.     if (temp)
  71.         [defmerge setStringValue:(char *)NXReadDefault(owner, "merge")];
  72.     
  73.     temp = (char *)NXReadDefault(owner, "hz");
  74.     if (temp)
  75.         [defhz setStringValue:(char *)NXReadDefault(owner, "hz")];
  76.     
  77.     temp = (char *)NXReadDefault(owner, "playpitch");
  78.     if (temp)
  79.         [defplaypitch setStringValue:(char *)NXReadDefault(owner, "playpitch")];
  80.     
  81.     temp = (char *)NXReadDefault(owner, "poles");
  82.     if (temp)
  83.         [defpoles setIntValue:(int)atoi(temp)];
  84.     
  85.     temp = (char *)NXReadDefault(owner, "frames");
  86.     if (temp)
  87.         [defframes setIntValue:(int)atoi(temp)];
  88.     
  89.     temp = (char *)NXReadDefault(owner, "lowcps");
  90.     if (temp)
  91.         [deflowcps setFloatValue:(float)atof(temp)];
  92.     
  93.     temp = (char *)NXReadDefault(owner, "highcps");
  94.     if (temp)
  95.         [defhighcps setFloatValue:(float)atof(temp)];
  96.  
  97.     temp = (char *)NXReadDefault(owner, "pitchframe");
  98.     if (temp)
  99.         [defpitchframe setIntValue:(int)atof(temp)];
  100.  
  101.     return self;
  102. }
  103.  
  104. - changePrefs:sender
  105. {
  106.     const    char *owner;
  107.     
  108.     owner = "lpcview";
  109.     
  110.     NXWriteDefault(owner, "lpc", [deflpc stringValue]);
  111.     NXWriteDefault(owner, "stabilize", [defstabilize stringValue]);
  112.     NXWriteDefault(owner, "ptrack", [defptrack stringValue]);
  113.     NXWriteDefault(owner, "merge", [defmerge stringValue]);
  114.     NXWriteDefault(owner, "hz", [defhz stringValue]);
  115.     NXWriteDefault(owner, "playpitch", [defplaypitch stringValue]);
  116.     NXWriteDefault(owner, "poles", [defpoles stringValue]);
  117.     NXWriteDefault(owner, "frames", [defframes stringValue]);
  118.     NXWriteDefault(owner, "lowcps", [deflowcps stringValue]);
  119.     NXWriteDefault(owner, "highcps", [defhighcps stringValue]);
  120.     NXWriteDefault(owner, "pitchframe", [defpitchframe stringValue]);
  121.     return self;
  122. }
  123.  
  124. - windowWillClose:sender
  125. {
  126.     const    char *owner;
  127.     
  128.     owner = "lpcview";
  129.  
  130.     NXWriteDefault(owner, "lpc", [deflpc stringValue]);
  131.     NXWriteDefault(owner, "stabilize", [defstabilize stringValue]);
  132.     NXWriteDefault(owner, "ptrack", [defptrack stringValue]);
  133.     NXWriteDefault(owner, "merge", [defmerge stringValue]);
  134.     NXWriteDefault(owner, "hz", [defhz stringValue]);
  135.     NXWriteDefault(owner, "playpitch", [defplaypitch stringValue]);
  136.     NXWriteDefault(owner, "poles", [defpoles stringValue]);
  137.     NXWriteDefault(owner, "frames", [defframes stringValue]);
  138.     NXWriteDefault(owner, "lowcps", [deflowcps stringValue]);
  139.     NXWriteDefault(owner, "highcps", [defhighcps stringValue]);
  140.     NXWriteDefault(owner, "pitchframe", [defpitchframe stringValue]);
  141.  
  142.     return self;
  143. }
  144.  
  145. - createPlot:sender
  146. {
  147.     [LPCPlot new:"Untitled"];
  148.     return self;
  149. }
  150.  
  151. - createPCH:sender
  152. {
  153.     [PCHPlot new:"Untitled"];
  154.     return self;
  155. }
  156.  
  157. - create:sender
  158. {
  159.     [LPCreate new];
  160.     return self;
  161. }
  162.  
  163. - viewFile:(char *)filename
  164. {
  165.     [LPCPlot new:filename];
  166.     return self;
  167. }
  168.  
  169. - viewPCHfile:(char *)filename
  170. {
  171.     [PCHPlot new:filename];
  172.     return self;
  173. }
  174.  
  175. - openLPCfile:sender
  176. {
  177.     char    *types[2];
  178.     char    file[1024];
  179.     static id    openPan = nil;
  180.     
  181.     types[0] = "lpc";
  182.     types[1] = 0;
  183.     if (!openPan)
  184.         openPan = [OpenPanel new];
  185.     if ([openPan runModalForTypes:types]) {
  186.         strcpy(file, [openPan filename]);
  187.         [LPCPlot new:file];
  188.     }
  189.     return self;
  190. }
  191.  
  192. - openPCHfile:sender
  193. {
  194.     char *pchtypes[2];
  195.     char file[1024];
  196.     static id openPan = nil;
  197.         
  198.     pchtypes[0] = "pch";
  199.     pchtypes[1] = 0;    
  200.     if (!openPan)
  201.         openPan = [OpenPanel new];
  202.     if ([openPan runModalForTypes:pchtypes]) {
  203.         strcpy(file, [openPan filename]);
  204.         [PCHPlot new:file];
  205.     }
  206.     return self;
  207.  
  208. }
  209.  
  210. - cut:sender
  211. {
  212.     if (!selection) {
  213.         selection = NXOpenMemory(NULL, 0, NX_READWRITE);
  214.     }
  215.     else {
  216.         NXCloseMemory(selection, NX_FREEBUFFER);
  217.         selection = NXOpenMemory(NULL, 0, NX_READWRITE);
  218.     }
  219.     [[[NXApp keyWindow] delegate] doCut:selection];
  220.     return self;
  221. }
  222.  
  223. - copy:sender
  224. {
  225.     // get a new memory stream to copy into
  226.     if (!selection) {
  227.         selection = NXOpenMemory(NULL, 0, NX_READWRITE);
  228.     }    
  229.     else {
  230.         NXCloseMemory(selection, NX_FREEBUFFER);
  231.         selection = NXOpenMemory(NULL, 0, NX_READWRITE);
  232.     }
  233.     [[[NXApp keyWindow] delegate] doCopy:selection];
  234.     return self; 
  235. }
  236.  
  237. - insert:sender
  238. {
  239.     float    *data;
  240.     int    len, maxlen;
  241.     
  242.     if (!selection) 
  243.         return self;
  244.     NXGetMemoryBuffer(selection, (char **)&data, &len, &maxlen);
  245.     [[[NXApp keyWindow] delegate] doInsert:data:len];
  246.     return self;
  247. }
  248.  
  249. - (BOOL)appAcceptsAnotherFile:sender
  250. {
  251.     return YES;
  252. }
  253.  
  254. - (char *)lpc
  255. {
  256.     return (char *)[deflpc stringValue];
  257. }
  258.  
  259. - (char *)stabilize
  260. {
  261.     return (char *)[defstabilize stringValue];
  262. }
  263.  
  264. - (char *)ptrack
  265. {
  266.     return (char *)[defptrack stringValue];
  267. }
  268.  
  269. - (char *)merge
  270. {
  271.     return (char *)[defmerge stringValue];
  272. }
  273.  
  274. - (char *)hz
  275. {
  276.     return (char *)[defhz stringValue];
  277. }
  278.  
  279. - (char *)playpitch
  280. {
  281.     return (char *)[defplaypitch stringValue];
  282. }
  283.  
  284. - (int)poles
  285. {
  286.     return [defpoles intValue];;
  287. }
  288.  
  289. - (int)frames
  290. {
  291.     return [defframes intValue];
  292. }
  293.  
  294. - (float)lowcps
  295. {
  296.     return [deflowcps floatValue]; 
  297. }
  298.  
  299. - (float)highcps
  300. {
  301.     return [defhighcps floatValue];
  302. }
  303.  
  304. - (int)ptchframe
  305. {
  306.     return [defpitchframe intValue];
  307. }
  308.  
  309. @end
  310.